package cn.itcast.web.controller.system;

import cn.itcast.domain.system.Module;
import cn.itcast.service.system.ModuleService;
import cn.itcast.web.controller.BaseController;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Controller
@RequestMapping("/system/module")
public class ModuleController extends BaseController {

 @Autowired
 private ModuleService moduleService;

 /**
  * 分页查询
  * /system/module/list.do
  */
 @RequestMapping("/list")
 public String list(
  @RequestParam(defaultValue = "1") int page,
  @RequestParam(defaultValue = "10") int size
 ) {

  PageInfo info = moduleService.findAll(page, size);

  request.setAttribute("page", info);

  return "system/module/module-list";
 }

 /**
  * 进入保存页面
  */
 @RequestMapping("/toAdd")
 public String toAdd(Module module) {
  //查询所有模块（构造下拉框设计）
  List<Module> moduleList = moduleService.findAll();
  // 存入request域中
  request.setAttribute("menus",moduleList);
  //跳转页面
  return "system/module/module-add";
 }

 /**
  * 保存或更新
  */
 @RequestMapping("/edit")
 public String edit(Module module) {
  //判断是否存在id
  if (StringUtils.isEmpty(module.getId())) {
   //不存在id，保存
   moduleService.save(module);
  } else {
   //存在id，更新
   moduleService.update(module);
  }
  //重定向
  return "redirect:/system/module/list.do";
 }

 /**
  * 进入更新页面
  */
 @RequestMapping("/toUpdate")
 public String toUpdate(String id) {
  //调用service根据id查询
  Module module = moduleService.findById(id);
  //存入request域
  request.setAttribute("module",module);
  //查询所有模块
  List<Module> list = moduleService.findAll();
  //存入request域
  request.setAttribute("menus",list);
  return "system/module/module-update";
 }

 /**
  * 根据id删除
  */
 public String delete(String id) {
  moduleService.delete(id);
  return "redirect:/system/module/list.do";
 }
}
